1 research outputs found
Efficient middleware for database replication
Dissertação de Mestrado em Engenharia InformáticaDatabase systems are used to store data on the most varied applications, like Web
applications, enterprise applications, scientific research, or even personal applications.
Given the large use of database in fundamental systems for the users, it is necessary that database systems are efficient e reliable. Additionally, in order for these systems to serve a large number of users, databases must be scalable, to be able to process large numbers of transactions. To achieve this, it is necessary to resort to data replication. In a
replicated system, all nodes contain a copy of the database. Then, to guarantee that
replicas converge, write operations must be executed on all replicas. The way updates
are propagated leads to two different replication strategies. The first is known as
asynchronous or optimistic replication, and the updates are propagated asynchronously
after the conclusion of an update transaction. The second is known as synchronous or pessimistic replication, where the updates are broadcasted synchronously during the transaction.
In pessimistic replication, contrary to the optimistic replication, the replicas remain
consistent. This approach simplifies the programming of the applications, since the
replication of the data is transparent to the applications. However, this approach
presents scalability issues, caused by the number of exchanged messages during
synchronization, which forces a delay to the termination of the transaction. This leads
the user to experience a much higher latency in the pessimistic approach.
On this work is presented the design and implementation of a database replication
system, with snapshot isolation semantics, using a synchronous replication approach.
The system is composed by a primary replica and a set of secondary replicas that fully
replicate the database- The primary replica executes the read-write transactions, while
the remaining replicas execute the read-only transactions. After the conclusion of a read-write transaction on the primary replica the updates are propagated to the
remaining replicas. This approach is proper to a model where the fraction of read
operations is considerably higher than the write operations, allowing the reads load to be
distributed over the multiple replicas.
To improve the performance of the system, the clients execute some operations
speculatively, in order to avoid waiting during the execution of a database operation.
Thus, the client may continue its execution while the operation is executed on the
database. If the result replied to the client if found to be incorrect, the transaction will be aborted, ensuring the correctness of the execution of the transactions